package com.laowang.project.system.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.laowang.framework.aspectj.lang.annotation.Excel;
import com.laowang.project.system.domain.vo.UserDetailVo;
import com.laowang.project.system.domain.vo.ZcUserVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;
import java.io.Serializable;
import java.util.List;

/**
 * 众筹活动对象 zc_activity
 *
 * @author laowang
 * @date 2025-09-09
 */
@NoArgsConstructor
@Data
public class ZcActivity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    @ApiModelProperty(value = "${comment}", required = false)
    private Integer id;

    @ApiModelProperty(value = "0下线，1上线", required = false)
    private Integer status;

    /**
     * 图片
     */
    @Excel(name = "图片")
    @ApiModelProperty(value = "图片", required = false)
    private String img;

    /**
     * 标题
     */
    @Excel(name = "标题")
    @ApiModelProperty(value = "标题", required = false)
    private String title;

    /**
     * 众筹金额
     */
    @Excel(name = "众筹金额")
    @ApiModelProperty(value = "众筹金额", required = false)
    private BigDecimal needAmount;

    /**
     * 已众筹金额
     */
    @Excel(name = "已众筹金额")
    @ApiModelProperty(value = "已众筹金额", required = false)
    private BigDecimal haveAmount;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "结束时间", required = false)
    private Date endTime;


    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "开始时间", required = false)
    private Date createTime;

    /**
     * 描述
     */
    @Excel(name = "描述")
    @ApiModelProperty(value = "描述", required = false)
    private String desc;

    /**
     * 详情
     */
    @Excel(name = "详情")
    @ApiModelProperty(value = "详情", required = false)
    private String details;

    @Transient
    private List<ZcUserVo> users;

    @ApiModelProperty(value = "人数", required = false)
    @Transient
    private Integer renshu;

    @ApiModelProperty(value = "平均", required = false)
    @Transient
    private BigDecimal pingjun;

    @ApiModelProperty(value = "剩余天数", required = false)
    @Transient
    private Long raminDay;

    @ApiModelProperty(value = "参与次数", required = false)
    @Transient
    private Integer canyucishu;

    @ApiModelProperty(value = "修改后的详情信息")
    private List<UserDetailVo> userDetailList;
}
